The present invention relates to an open computing system with multiple servers. The invention is most particularly applicable to systems whose various constituent elements belong to heterogenous computing environments, for example distributed environments of the DCE type (English acronym for Distributed Computing Environment), described in the publications "OSF Distributed Computing Environment Rationale" by the Open Software Foundation, Inc., dated May 14, 1990, and "Distributed computing environment, an overview," of January, 1992, or of the non-DCE type (for example so-called "proprietary" systems, such as those which use the GCOS7 and GCOS8 operating systems available from the assignee of the instant invention).
The current trend in the development of modern computing systems is to form such a system by means of an association between a central system called a "host system" or "client system" or more simply "client," on one hand, and a plurality of "server systems," more simply called "servers," on the other hand. Any user of the computing system can run extremely varied types of applications on the central system. These applications call services which furnish the data necessary for the processing of a problem or problems they are handling, which services are available through the servers. These servers are also called "allies". Thus, the instant invention is particularly directed to a multiple-ally distributed computing system.
One example embodiment such a system is formed by the association of a central system of the DPS7000 or 9000 type and servers of the DPX-20 type, all of which are available from the assignee of the instant invention. The central system, which will henceforth be called "client" in the text which follows, communicates with its allies by means of a known, standardized type of network, for example the ETHERNET type (ISO standard 8802.3), or the FDDI type (ANSI standard X3T9-5), etc. Each of the allies can furnish the same type of services to the client.
In current practice, when an application being run requires the utilization of a particular service, the client proceeds in the following manner:
either the client chooses the ally which will furnish it with this service in a purely random way and assigns the service this job,
or, the client makes a circular choice from among all its allies, that is, it assigns the allies in turn, and always in the same temporal order, the job of furnishing the services successively required by the application or applications: Thus, if the client has three allies, it assigns the job of furnishing services required first in chronological order by a first application to ally No. 1, the job of furnishing services required second in chronological order by a second application (or possibly by the same first application) to ally No. 2, the job of furnishing services required third in chronological order by a third application to Ally No. 3, and so on, in the following recurring order: ally No. 1, No. 2, No. 3, No. 1, etc.
In either of the above two cases, it is clear that on one hand, neither the work of the client nor that of the allies is optimized in terms of its chronological order, and that on the other hand, the capabilities of the allies with regard to throughput and performance are not utilized at their maximum level.